1/* 2 * Copyright (c) 2023 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16import fs from 'fs'; 17import path from 'path'; 18import assert from 'assert'; 19 20const filePath = path.join(__filename, '../interface_demo_01_use.ts'); 21const actual = fs.readFileSync(filePath, 'utf-8'); 22 23const expectation = `export interface Interface01 { 24 interfaceP1: number; 25 "interfaceP2": number; 26 ["interfaceP1"]: number; 27} 28export const Object01 = { 29 objectP1: 10, 30 "objectP2": 11, 31 ['objectP3']: 12, 32}; 33export class class01 { 34 classP1; 35 11 = 4; 36 'classP2' = 3; 37 ['classP3'] = 2; 38 constructor(public classP5 = 1, private classP6 = 2, protected classP7 = 3, readonly classP8 = { classP9: 4 }) { 39 this.classP1 = { 40 classP10: 3 41 }; 42 } 43 classP11 = class class02 { 44 classP12 = 3; 45 }; 46 get classP13() { return 1; } 47 set classP14(a) { } 48} 49export enum enum01 { 50 enumP1, 51 'enumP2', 52 ['enumP3'] 53} 54export type typeAlia01 = { 55 typeP1; 56 'typeP2'; 57 ['typeP3']; 58};` 59 60assert.strictEqual(actual.trim(), expectation.trim());