编辑
2023-03-26
TypeScript
0
请注意,本文编写于 531 天前,最后修改于 515 天前,其中某些信息可能已经过时。

目录

声明合并
概念
Eg
注意点
命名空间
说明
注意点

声明合并

概念

指的是编译器会将程序中多个声明合并为一个声明,避免遗漏

Eg

interface A { x:number } interface A { y:number } let a:A = { x:1, y:2 }

注意点

1、对于非函数成员,必须保持类型相同,否则无法合并

2、 对于函数成员,若参数类型字面量类型,则排在第一位,多个接口则按照后覆盖前

ts
interface A { X: NUMBER; foo (bar:number):number;//5 foo (bar:"a"):number;//2 } interface A { X: NUMBER; foo (bar:string):string;//3 foo (bar:number):number;//4 foo (bar:"b"):number;//1 } //定义接口的实现时,由于两个接口合并后,故此处需要宽泛的类型 let a:A = { x:1, foo(bar:any){ return bar } }

命名空间

说明

命名空间中函数不允许重复导出

注意点

命名空间和类、函数合并时,只能在其后面声明否则报错 对于和枚举类型合并则没有要求

ts
function Lib(){} namespace Lib { export let version = "1.0" } console.log(Lib.version) // 1.0 class C {} namespace C { export let state = 1 } console.log(C.state)//1 enum Color { red, blue, green } namespace Color { export function mix(){} } console.log(Color),//相当于为枚举添加mix方法

本文作者:RKLS

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!