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/compiler/constAndNS.ts === 20declare function AssertType(value:any, type:string):void; 21type A = number; 22declare const Q: number; 23AssertType(Q, "number"); 24 25declare namespace Q { 26 export { A }; 27} 28declare const try1: Q.A; 29AssertType(try1, "number"); 30AssertType(Q, "any"); 31 32declare namespace Q2 { 33 export { Q } 34} 35declare const try2: Q2.Q.A; 36AssertType(try2, "number"); 37AssertType(Q2, "any"); 38AssertType(Q, "any"); 39 40declare namespace Q3 { 41 export {A as B}; 42} 43declare const try3: Q3.B; 44AssertType(try3, "number"); 45AssertType(Q3, "any"); 46 47declare namespace Q4 { 48 export { Q as default }; 49} 50declare const try4: Q4.default.A; 51AssertType(try4, "number"); 52AssertType(Q4, "any"); 53AssertType(default, "any"); 54 55export {}; 56 57