javascript - TypeScript - 如何在类定义之外添加方法

标签 javascript typescript ecmascript-6

typescript ,如何在类定义之外添加方法

我尝试在原型(prototype)上添加它,但是出错

B.ts

export class B{
    name: string = 'sam.sha'
}

//Error:(21, 13) TS2339: Property 'say' does not exist on type 'B'.
B.prototype.say = function(){
    console.log('define method in prototype')
}

最佳答案

它提示是因为你没有定义 B 有方法 say
您可以:

class B {
    name: string = 'sam.sha'
    say: () => void;
}

B.prototype.say = function(){
    console.log('define method in prototype')
}

或者:

class B {
    name: string = 'sam.sha'
}

interface B {
    say(): void;
}

B.prototype.say = function(){
    console.log('define method in prototype')
}

关于javascript - TypeScript - 如何在类定义之外添加方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38432673/

相关文章:

javascript - Lodash debounce 在 React 中不起作用

javascript - 函数不适用于 React.js 中的 onClick 事件

javascript - Jest mock 获取响应 blob 的 fetch() 函数

javascript - 用于更改多个图像的 img 属性的输入字段

javascript - 什么是 Class.extend({});下面的javascript代码中的代码?

javascript - Twitter 用户名输入字段文本过滤

angular - 将类导出为 Angular2 中的接口(interface)

javascript - Chrome Extension runtime.sendmessage 等待响应

javascript - 限制实现接口(interface)的 typescript 类方法

macos - MacOS 上 Coda 中的 TypeScript 高亮显示