gpt4 book ai didi

javascript - Typescript 类使用接口(interface)作为类型而不是实现

转载 作者:行者123 更新时间:2023-12-02 13:56:49 25 4
gpt4 key购买 nike

我正在寻找一种模仿使用/实现接口(interface)的 C# 方式的方法。简而言之,我正在尝试复制以下代码:

interface EBook {
function read();
}

class EBookReader {

private $book;

function __construct(EBook $book) {
$this->book = $book;
}

function read() {
return $this->book->read();
}

}

class PDFBook implements EBook {

function read() {
return "reading a pdf book.";
}
}

class MobiBook implements EBook {

function read() {
return "reading a mobi book.";
}
}

使用实现效果很好,但是我无法模仿 EBookReader 类使用电子书作为类型的方式。

codepen 和我的代码模型:http://codepen.io/Ornhoj/pen/gLMELX?editors=0012

最佳答案

using Ebook as a type

大小写敏感。

interface IEBook {
read();
}

class EBookReader {
book: IEBook;

constructor(book: IEBook) {
this.book = book;
}

read() {
this.book.read();
}

}

class PDFBook implements IEBook {
read() {
console.log("reading a pdf book.");
}
}

class MobiBook implements IEBook {
read() {
console.log("reading a mobi book.");
}
}
var pdf = new PDFBook();
var reader = new EBookReader(pdf);
reader.read();

测试此代码in the playground .

关于javascript - Typescript 类使用接口(interface)作为类型而不是实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40625601/

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