1/* 2* Copyright (c) Microsoft Corporation. All rights reserved. 3* Copyright (c) 2023 Huawei Device Co., Ltd. 4* Licensed under the Apache License, Version 2.0 (the "License"); 5* you may not use this file except in compliance with the License. 6* You may obtain a copy of the License at 7* 8* http://www.apache.org/licenses/LICENSE-2.0 9* 10* Unless required by applicable law or agreed to in writing, software 11* distributed under the License is distributed on an "AS IS" BASIS, 12* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13* See the License for the specific language governing permissions and 14* limitations under the License. 15* 16* This file has been modified by Huawei to verify type inference by adding verification statements. 17*/ 18 19// === tests/cases/conformance/types/typeAliases/circularTypeAliasForUnionWithClass.ts === 20declare function AssertType(value:any, type:string):void; 21let v0: T0; 22AssertType(v0, "T0"); 23 24type T0 = string | I0; 25class I0 { 26 x: T0; 27} 28 29let v3: T3; 30AssertType(v3, "T3"); 31 32type T3 = string | I3; 33class I3 { 34 [x: number]: T3; 35} 36 37let v4: T4; 38AssertType(v4, "T4"); 39 40type T4 = string | I4; 41class I4 { 42 [x: string]: T4; 43} 44 45 46