gpt4 book ai didi

TypeScript:接口(interface)方法实现

转载 作者:行者123 更新时间:2023-12-04 12:10:39 24 4
gpt4 key购买 nike

如何在 TypeScript 的接口(interface)中实现方法?

interface Bar
{
num: number;
str: string;
fun?(): void;
}
class Bar
{
fun?()
{
console.log(this.num, this.str);
}
}
let foo: Bar = {num: 2, str: "B"};
foo.fun();

预期: 2 B
实际的:
Error Cannot invoke an object which is possibly 'undefined'.ts(2722)
如果方法中省略了可选标志 fun() ,那么错误将是:
Property 'fun' is missing in type '{ num: number; str: string; }' but required in type 'Bar'.ts(2741)
更新 1

这是一种可以达到预期效果的变通方法,尽管它似乎不是执行此操作的正确方法。
if(foo.fun)
{
foo.fun();
}

最佳答案

在您创建的类中实现接口(interface),然后调用。

interface BarInterface
{
num: number;
str: string;
fun: () => void;
}

class Bar implements BarInterface {
num: number;
str: string;

constructor(num: number, str: string) {
this.num = num;
this.str = str;
}
fun() {
console.log(this.num, this.str);
}
}

let foo = new Bar(2, "B");

foo.fun();

关于TypeScript:接口(interface)方法实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59313995/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com