0
我想知道什麼foo
和bar
之間的差異是在以下接口:差異函數和方法
interface Test
{
foo(value: number): string;
bar: (value: number) => string;
}
let x: Test = {
foo: (i) => "",
bar: (i) => "",
};
我的明顯,第一個是方法,而第二個是一個屬性,但這是否在語義上相同?
編輯:
它似乎並不完全等效。至少在構造函數方法now
只有第一個語法似乎是有效的:
class Test
{
}
interface TestConstructor
{
new(): Test;
}
const activator = function(type: TestConstructor)
{
return new type(); // fine
}
interface TestConstructor2
{
new:() => Test;
}
const activator2 = function(type: TestConstructor2)
{
return new type(); // Error: Cannot use 'new' with an expression whose type lacks a call or construct signature.
}
但你能解釋的差異,當涉及到的'''new'''keyword(見編輯零件上面的問題)? –