在 ts 当中接口和命名空间是可以重名的, ts 会将多个同名的合并为一个
interface TestInterface {
name: string;
}
interface TestInterface {
age: number;
}
class Person implements TestInterface {
name: string;
age: number;
}
let person = new Person();
person.name = "yangbuyiya";
person.age = 18;
console.log(person);
interface TestInterface {
name: string;
}
interface TestInterface {
name: number;
}
interface TestInterface {
getValue(value: number): number;
}
interface TestInterface {
getValue(value: string): number;
}
let obj: TestInterface = {
getValue(value: any): number {
if (typeof value === 'string') {
return value.length;
} else {
return value.toFixed();
}
}
}
console.log(obj.getValue("abcdef"));
console.log(obj.getValue(3.14));
namespace Validation {
export let name: string = 'yangbuyiya';
}
namespace Validation {
export let age: number = 18;
}
console.log(Validation.name);
console.log(Validation.age);
namespace Validation {
export let name: string = 'yangbuyiya';
export let say = () => "abc";
}
namespace Validation {
export let name: string = 'zs';
export let say = () => "abc";
}
export
导出的内容是获取不到的namespace Validation {
let name: string = 'yangbuyiya';
}
namespace Validation {
export let say = () => {
console.log(`name = ${name}`);
};
}
Validation.say();
除了同名的接口和命名空间可以合并以外 命名空间还可以和同名的
类/函数/枚举
合并
类必须定义在命名空间的
前面
会将命名空间中导出的方法作为一个静态方法
合并到类中
class Person {
say(): void {
console.log('hello world');
}
}
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();
没有
先后顺序
的要求
enum Gender {
Male,
Female
}
namespace Gender {
export const Yao: number = 666;
}
console.log(Gender);
本期结束咱们下次再见👋~
🌊 关注我不迷路,如果本篇文章对你有所帮助,或者你有什么疑问,欢迎在评论区留言,我一般看到都会回复的。大家点赞支持一下哟~ 💗
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。