Tìm kiếm trang web

Tôi có thể khai báo các giao diện TypeScript trong một tệp riêng biệt và sử dụng nó mà không bao giờ nhập khẩu nó không?


Hiện tại tôi phải khai báo interface ngay tại nơi tôi sử dụng nó hoặc import {ISomeInterface} from './somePlace'. Có cách nào chỉ khai báo các interface trong các file something.interface.ts và sử dụng những interface đó mà không cần import chúng không?

Ví dụ, tôi không nhập @types/node để sử dụng các giao diện được khai báo trong @types/node, đúng không? Tôi cũng muốn làm điều đó với các giao diện tùy chỉnh.

Câu trả lời #1

Bạn có thể khai báo các kiểu trên toàn cục. Nếu bạn khai báo một file ts hoặc d.ts, file đó không xuất ra bất cứ thứ gì và không sử dụng bất kỳ câu lệnh import nào thì file của bạn sẽ được coi là thêm vào phạm vi toàn cục. Bạn có thể sử dụng import types nếu bạn cần truy cập các kiểu từ các module, sử dụng import('moduleName').Type.

Bạn cũng có thể sử dụng declare global bên trong một tệp có chứa các import:

import { Type } from 'module'
declare global {
    interface GlobalInterface {
        o: Type 
    }
}