我有一个表格的数组:[ 1, "message" ].
我如何在TypeScript中定义它?
在TypeScript中看起来绝对没问题(从编译器的角度来看)有这样的代码:
class Vehicle {
public run(): void { console.log('Vehicle.run'); }
}
class Task {
public run(): void { console.log('Task.run'); }
}
function runTask(t: Task) {
t.run();
}
runTask(new Task());
runTask(new Vehicle());
Run Code Online (Sandbox Code Playgroud)
但与此同时,我希望编译错误,因为Vehicle并Task没有任何共同点.
而理智的用途可以通过明确的接口定义来实现:
interface Runnable {
run(): void;
}
class Vehicle implements Runnable {
public run(): void { console.log('Vehicle.run'); }
}
class Task implements Runnable {
public run(): void { console.log('Task.run'); }
}
function runRunnable(r: Runnable) {
r.run();
}
runRunnable(new Task());
runRunnable(new …Run Code Online (Sandbox Code Playgroud)