Ce face stripInternal
Uneori o funcție trebuie exportată ca s-o folosești din alte fișiere ale bibliotecii, dar nu vrei ca utilizatorii să o vadă. Cu stripInternal, declarațiile care au comentariul JSDoc /** @internal */ nu sunt scrise în .d.ts.
Codul JavaScript rămâne neschimbat: funcția există și poate fi apelată. Doar tipurile ei sunt ascunse. Opțiunea nu este documentată oficial ca stabilă și trebuie folosită cu atenție. Implicit: false.
Parametri
| Parametru | Descriere |
|---|---|
true |
Declarațiile cu @internal lipsesc din .d.ts. |
false |
Valoarea implicită. |
Exemple
Exemplul 1: O funcție internă ascunsă
rotunjeste lipsește din index.d.ts, dar există în index.js.
// tsconfig.json
{
"compilerOptions": {
"target": "es2022",
"module": "nodenext",
"declaration": true,
"stripInternal": true,
"outDir": "dist"
}
}
// src/index.ts
/** Calculează totalul coșului. */
export function total(preturi: number[]): number {
return rotunjeste(preturi.reduce((s, p) => s + p, 0));
}
/** @internal */
export function rotunjeste(x: number): number {
return Math.round(x * 100) / 100;
}
Rezultat (tsc 5.9)
$ npx tsc && cat dist/index.d.ts
/** Calculează totalul coșului. */
export declare function total(preturi: number[]): number;
$ cat dist/index.js
/** Calculează totalul coșului. */
export function total(preturi) {
return rotunjeste(preturi.reduce((s, p) => s + p, 0));
}
/** @internal */
export function rotunjeste(x) {
return Math.round(x * 100) / 100;
}
Greșeli frecvente
- Să marchezi cu
@internalun tip folosit într-o declarație publică..d.ts-ul rezultat trimite la un tip care lipsește. - Să scrii
// @internal. Trebuie să fie comentariu JSDoc:/** @internal */.
Comenzi înrudite
declaration: Generează lângă fiecare fișier .js un fișier .d.ts cu tipurile lui, ca alte proiecte să-l poată folosi cu tipuri.removeComments: Scoate comentariile din fișierele .js generate (și din .d.ts).