我想定义interface
| type
在typescript类中的代码如下:
class MyClass {
interface IClass {
name: string,
id: string
}
}
但我得到了这个错误:Unexpected token. A constructor, method, accessor, or property was expected.
- 确切的目标是:-**
我正在做一个框架,用户可以在其中扩展基类Randoms
并覆盖基类的一些方法,但我没有在子类中获得任何类型的智能。
下面是代码:
abstract class RandomsRoute {
public get (req:Resquest, res:Response): Promise <void> { res.send ('') }
}
// client side
import RandomsRoute, { Request, Response } from '@my-pkg'
class Client extends RandomsRoute {
// public get (req, res) {res.send('client side')} // error here
public get (req: Request, res: Response): Promise <void> { res.send ('') }
}
此处
{ Request, Response } from '@my-pkg'
I don't want the user to make lots of imports can we simplify this anymore or maybe provide some better APIs to user?
- 提前准备油罐**
1条答案
按热度按时间ulydmbyx1#
目前还不能直接在类体的作用域中声明类型或接口。在microsoft/TypeScript#7061中有一个对它的特性请求,但它不是语言的一部分。即使它是,也不清楚你是否能够将类型导出到类之外。例如,你可以在函数中定义类型,但这些类型的定义在函数之外是不可见的:
因此,您可能并不真的希望在类 * 内部 * 定义接口。
相反,正如microsoft/TypeScript#7061上的这篇评论中提到的,你可以做的是merge,这个类带有一个
namespace
,你可以从中导出你的类型:然后,在另一个文件中,导入
MyClass
并获得类和名称空间:Playground代码链接