Chỉ thị ba dấu gạch chéo là nhận xét một dòng chứa một thẻ XML duy nhất. Nội dung của nhận xét được sử dụng làm chỉ thị của trình biên dịch
Chỉ thị ba dấu gạch chéo chỉ hợp lệ ở đầu tệp chứa chúng. Chỉ thị ba dấu gạch chéo chỉ có thể được đặt trước các nhận xét đơn hoặc nhiều dòng, bao gồm các chỉ thị ba dấu gạch chéo khác. Nếu chúng gặp phải sau một câu lệnh hoặc một tuyên bố, chúng được coi là các nhận xét một dòng thông thường và không có ý nghĩa đặc biệt
///
Chỉ thị ///
là phổ biến nhất của nhóm này. Nó phục vụ như một tuyên bố về sự phụ thuộc giữa các tệp
Các tham chiếu ba dấu gạch chéo hướng dẫn trình biên dịch bao gồm các tệp bổ sung trong quá trình biên dịch
Chúng cũng phục vụ như một phương pháp để sắp xếp đầu ra khi sử dụng hoặc. Các tệp được phát ra đến vị trí tệp đầu ra theo cùng thứ tự với đầu vào sau khi vượt qua quá trình tiền xử lý
Tiền xử lý tệp đầu vào
Trình biên dịch thực hiện chuyển tiền xử lý trên các tệp đầu vào để giải quyết tất cả các chỉ thị tham chiếu ba dấu gạch chéo. Trong quá trình này, các tệp bổ sung được thêm vào quá trình biên dịch
Quá trình bắt đầu với một tập hợp các tệp gốc; . Các tệp gốc này được xử lý trước theo cùng thứ tự chúng được chỉ định. Trước khi một tệp được thêm vào danh sách, tất cả các tham chiếu dấu gạch chéo ba trong đó đều được xử lý và các mục tiêu của chúng được bao gồm. Các tham chiếu ba dấu gạch chéo được giải quyết theo cách chuyên sâu, theo thứ tự chúng đã được nhìn thấy trong tệp
Đường dẫn tham chiếu ba dấu gạch chéo được giải quyết tương ứng với tệp chứa, nếu đường dẫn tương đối được sử dụng
lỗi
Đó là một lỗi để tham khảo một tập tin không tồn tại. Đó là lỗi đối với một tệp có tham chiếu dấu gạch chéo ba đối với chính nó
Sử dụng ts
///
export class C {}
1
ts
/// export class C {}
Nếu cờ trình biên dịch được chỉ định, các tham chiếu ba dấu gạch chéo sẽ bị bỏ qua;
ts
///
export class C {}
3
ts
/// export class C {}
Tương tự như một chỉ thị ///
, đóng vai trò là một tuyên bố về sự phụ thuộc, một chỉ thị
3 tuyên bố một sự phụ thuộc vào một góits
///
export class C {}
Quá trình giải quyết các tên gói này tương tự như quá trình giải quyết các tên mô-đun trong câu lệnh
6. Một cách dễ dàng để nghĩ về các chỉ thị kiểu tham chiếu ba dấu gạch chéo là mộtts
///
export class C {}
6 cho các gói khai báots
///
export class C {}
Ví dụ, bao gồm
8 trong một tệp khai báo tuyên bố rằng tệp này sử dụng các tên được khai báo trongts
///
export class C {}
9;ts
///
export class C {}
Chỉ sử dụng các chỉ thị này khi bạn đang soạn thảo một tệp
0 bằng tayjs
define["NamedModule", ["require", "exports"], function [require, exports] {
var C = [function [] {
function C[] {}
return C;
}][];
exports.C = C;
}];
Đối với các tệp khai báo được tạo trong quá trình biên dịch, trình biên dịch sẽ tự động thêm
3 cho bạn;ts
///
export class C {}
Để khai báo sự phụ thuộc vào gói
3 trong tệpjs
define["NamedModule", ["require", "exports"], function [require, exports] {
var C = [function [] {
function C[] {}
return C;
}][];
exports.C = C;
}];
4, hãy sử dụng trên dòng lệnh hoặc trongjs
define["NamedModule", ["require", "exports"], function [require, exports] {
var C = [function [] {
function C[] {}
return C;
}][];
exports.C = C;
}];
0 của bạn để thay thế. Xem để biết thêm chi tiếtts
///
export class C {}
ts
///
declare var moduleA: MyType;
moduleA.callStuff[];
1
ts
/// declare var moduleA: MyType; moduleA.callStuff[];
Chỉ thị này cho phép một tệp bao gồm rõ ràng tệp lib tích hợp sẵn
Các tệp lib tích hợp được tham chiếu giống như tùy chọn trình biên dịch trong tsconfig. json [e. g. sử dụng
3 chứ không phảits
///
declare var moduleA: MyType;
moduleA.callStuff[];
4, v.v. ]ts
///
declare var moduleA: MyType;
moduleA.callStuff[];
Đối với các tác giả tệp khai báo dựa trên các loại tích hợp sẵn, e. g. API DOM hoặc trình xây dựng thời gian chạy JS tích hợp như
5 hoặcts
///
declare var moduleA: MyType;
moduleA.callStuff[];
6, chỉ thị lib tham chiếu ba dấu gạch chéo được khuyến nghị. Trước đây những. d. các tệp ts phải thêm các khai báo chuyển tiếp/trùng lặp của các loại đóts
///
declare var moduleA: MyType;
moduleA.callStuff[];
Ví dụ: thêm
7 vào một trong các tệp trong phần biên dịch tương đương với việc biên dịch vớits
///
declare var moduleA: MyType;
moduleA.callStuff[];
8ts
///
declare var moduleA: MyType;
moduleA.callStuff[];
ts
///
"foo".padStart[4];
ts
///
declare var moduleA: MyType;
moduleA.callStuff[];
9
ts
/// declare var moduleA: MyType; moduleA.callStuff[];
Lệnh này đánh dấu một tệp là thư viện mặc định. Bạn sẽ thấy nhận xét này ở đầu
0 và các biến thể khác nhau của nójs
define[["require", "exports", "legacy/moduleA"], function [
require,
exports,
moduleA
] {
moduleA.callStuff[];
}];
Chỉ thị này hướng dẫn trình biên dịch không bao gồm thư viện mặc định [i. e.
0] trong phần tổng hợp. Tác động ở đây tương tự như truyền vào dòng lệnhjs
define[["require", "exports", "legacy/moduleA"], function [
require,
exports,
moduleA
] {
moduleA.callStuff[];
}];
Cũng lưu ý rằng khi vượt qua , trình biên dịch sẽ chỉ bỏ qua việc kiểm tra các tệp có
9ts
///
declare var moduleA: MyType;
moduleA.callStuff[];
js
define[["require", "exports", "legacy/moduleA"], function [
require,
exports,
moduleA
] {
moduleA.callStuff[];
}];
5
js
define[["require", "exports", "legacy/moduleA"], function [ require,
exports,
moduleA
] {
moduleA.callStuff[];
}];
Theo mặc định, các mô-đun AMD được tạo ẩn danh. Điều này có thể dẫn đến các vấn đề khi các công cụ khác được sử dụng để xử lý các mô-đun kết quả, chẳng hạn như các gói [e. g.
6]js
define[["require", "exports", "legacy/moduleA"], function [
require,
exports,
moduleA
] {
moduleA.callStuff[];
}];
Chỉ thị
7 cho phép chuyển tên mô-đun tùy chọn tới trình biên dịchamdModule. tsjs
define[["require", "exports", "legacy/moduleA"], function [
require,
exports,
moduleA
] {
moduleA.callStuff[];
}];
ts
///
export class C {}
Sẽ dẫn đến việc gán tên
8 cho mô-đun như một phần của việc gọi AMD làjs
define[["require", "exports", "legacy/moduleA"], function [
require,
exports,
moduleA
] {
moduleA.callStuff[];
}];
9amdModule. js________số 8_______js
define[["require", "exports", "legacy/moduleA"], function [
require,
exports,
moduleA
] {
moduleA.callStuff[];
}];
///
0
Ghi chú. chỉ thị này đã bị phản đối. Thay vào đó, hãy sử dụng câu lệnh
///
1
///
2 thông báo cho trình biên dịch về một phụ thuộc mô-đun không phải TS cần được đưa vào lệnh gọi yêu cầu của mô-đun kết quả
Chỉ thị ///
3 cũng có thể có thuộc tính ///
4 tùy chọn;