2016-07-29 25 views
11

Tôi đang sử dụng TypeScript với tùy chọn "noImplicitAny": true được đặt trong tsconfig.json của tôi.Chỉ cho phép ẩn bất kỳ tệp định nghĩa nào

Tôi đang sử dụng typings để quản lý các file định nghĩa kiểu và đang kể họ sử dụng một chỉ con đường tham chiếu trong các điểm nhập cảnh của ứng dụng của tôi:

/// <reference path="./typings/index.d.ts" /> 

Vấn đề là một số các tập tin định nghĩa dựa trên tiềm ẩn bất kỳ , vì vậy bây giờ tôi nhận được rất nhiều lỗi biên dịch từ .d.ts tệp.

Có cách nào để vô hiệu hóa/tắt tiếng các lỗi này, ví dụ: dựa trên đường dẫn hoặc loại tệp không?

+0

Bạn có cố gắng đặt một tập tin tsconfig.json thứ hai với ' "noImplicitAny": false' đến một 'typings/'thư mục? – Terite

+0

Một giải pháp khác có thể là đặt tệp 'tsconfig.json' của bạn vào thư mục chứa nguồn của bạn, ví dụ: 'src /' thay vì đặt nó vào thư mục gốc của dự án. – Terite

+0

@Terite cảm ơn các đề xuất. Tôi đã thử thêm một tập tin 'tsconfig.json' thứ hai vào thư mục' typings' nhưng tôi vẫn gặp lỗi. Tôi không muốn cơ cấu lại dự án của mình nhưng tôi không chắc liệu nó có hoạt động hay không, vì các tệp '.d.ts' sẽ vẫn được đưa vào. –

Trả lời

11

Với việc phát hành nguyên cảo 2.0, tùy chọn skipLibCheck trình biên dịch đã được giới thiệu và nó sẽ giải quyết vấn đề của bạn:

nguyên cảo 2.0 bổ sung thêm một lựa chọn --skipLibCheck trình biên dịch mới gây ra kiểm tra kiểu file khai (file với phần mở rộng .d.ts) bị bỏ qua. Khi một chương trình bao gồm các tệp khai báo lớn, trình biên dịch dành nhiều thời gian kiểm tra kiểu khai báo đã được biết là không chứa lỗi và thời gian biên dịch có thể được rút ngắn đáng kể bằng cách bỏ qua kiểm tra kiểu tệp khai báo.

Vì các khai báo trong một tệp có thể ảnh hưởng đến việc kiểm tra loại trong các tệp khác, một số lỗi có thể không được phát hiện khi --skipLibCheck được chỉ định. Ví dụ, nếu một tập tin không khai báo tăng thêm một loại được khai báo trong một tệp khai báo, các lỗi có thể dẫn đến kết quả chỉ được báo cáo khi tệp kê khai được chọn. Tuy nhiên, trong thực tế tình huống như vậy là rất hiếm.

Nó mặc định là false và có thể được kích hoạt trong tsconfig.json của bạn:

{ 
    "compilerOptions": { 
     "skipLibCheck": true, 
     ... 
    }, 
    ... 
} 
0

nếu bạn cần phải cho phép ngầm bất kỳ trên một dòng nhập khẩu duy nhất bạn có thể sử dụng //@ts-ignore thuộc tính ngay trước khi các mô-đun untyped nhập khẩu nó sẽ bỏ qua bất kỳ lỗi nào (cũng như tất cả các lỗi khác có thể xảy ra của dòng sau, vì vậy bạn có thể làm cho nó đúng) nhưng nó chết dễ dàng và giải quyết cho tôi rất nhiều đau đầu trong thời gian không

ví dụ cho phông chữ tuyệt vời 5 tôi đã

//@ts-ignore 
import fontawesome from '@fortawesome/fontawesome'; 
//@ts-ignore 
import regular from '@fortawesome/fontawesome-free-regular'; 

fontawesome.library.add(regular); 

cộng, nó hoạt động tốt với webpack

Các vấn đề liên quan