我如何退回这种类型

时间:2019-04-08 17:09:35

标签: typescript

能给我一个使用这种类型的例子吗?

interface MyCode{
    (): Function;
    title: string;
}

我考虑了很多方法,但是我无法解决。其中之一:

let testCode: MyCode = () => {};
testCode['title'] = 'my first function';

但是抛出错误

2 个答案:

答案 0 :(得分:0)

这种结构对我有用

let t: MyCode;

t = <MyCode>function (): any {
};
t.title = "tst";



interface MyCode {
    (): Function;
    title: String;
}

答案 1 :(得分:0)

您的代码正确,但是您的类型错误。您的函数接口是一个返回函数的函数。但是testCode函数不返回任何内容

此代码自TypeScript >= 3.1

起完全有效
interface MyCode {
  (): Function;
  title: string;
}


const testCode: MyCode = () => () => {};

testCode.title = 'my first function';

对于上一个,您可以使用namespaces

function testCode() {
  return () => {};
}

namespace testCode {
  export const title = '';
}

或使用Object.assign()

const testCode: MyCode = Object.assign(() => () => {}, {
  title: 'my first function'
});