typescript【五】合并

接触ts之后你应该会注意到,所有的声明都会增加类型

 let n:number=1
 let s:string = '1'
 function m():void{};

那么问题来了,可以进行如下操作吗?

let n:number 
let n:string 

function a():void{

}

function a():string{

}
console.log(n, n);

Cannot redeclare block-scoped variable 【无法重新声明块作用域变量】

正确方式 

let n: number | string
function a():void|string{

}

interface


interface Itest {
    a: () => void,
    a: () => string
}

这样也是不允许的 类型不一样是不允许的,可以这样

interface Itest {
    a: () => void
}

interface Itest {
    a: (arg:string) => void
}

其实最终是这样的

interface Itest {
    a: (arg?:string) => void
}
文章来源: typescript【五】合并