簡體   English   中英

Typescript類使用接口作為類型而不是實現

[英]Typescript Class use Interface as type instead of implement

我正在尋找一種模仿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.";
    }
}

使用工具效果很好,但是我無法模仿使用Ebook作為類型的Class EBookReader方法。

Codepen與我的代碼模型: http ://codepen.io/Ornhoj/pen/gLMELX?editors=0012

使用電子書作為一種類型

情況是敏感的。

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();

在操場上測試此代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM