// 1.接口
// interface ITest {
// name: string
// }
// interface ITest {
// age: number
// }
// class Person implements ITest {
// name: string = "文咏珊"
// age: number = 18
// }
// let p = new Person()
// console.log(, p.age);
// interface ITest {
// show(value: number): number
// }
// interface ITest {
// show(value: string): number
// }
// const func: ITest = {
// show(value: any): number {
// if(typeof value === "string") {
// return value.length
// }else {
// return value.toFixed()
// }
// }
// }
// console.log(func.show("世界上最遥远的距离就是,你是if而我是else, 似乎一直相伴但又永远相离"));
// console.log(func.show("世界上最痴心的等待,是我当case而你当switch,或许永远都选不上自己"));
// console.log(func.show("世界上最真情的相依,是你在try我在catch。无论你发神马脾气,我都默默承受,静静处理。到那时,再来期待我们的finally"));
// console.log(func.show(3.14));
// 2.命名空间
// namespace A {
// export let a = 10;
// }
// namespace A {
// export let a = 100;
// }
// 命名空间与类合并
// class Person {
// // prototype上面
// say():void {
// console.log("say 孙怡");
// }
// }
// namespace Person {
// export const hi = ():void => {
// console.log("hi 孙怡");
// }
// }
// console.dir(Person)
// 命名空间与函数合并
// 注意点: 函数里面可以使用命名空间定义的变量
// function getCounter() {
// getCounter.count++;
// console.log(getCounter.count);
// }
// namespace getCounter {
// export let count: number = 0
// }
// getCounter()
// 命名空间与枚举合并
namespace Gender {
export const money:number = 18
}
enum Gender {
Male,
Female
}
// { '0': 'Male', '1': 'Female', Male: 0, Female: 1, money: 18 }
console.log(Gender);