diff --git a/packages/tsconfig-reference/copy/id/options/allowJs.md b/packages/tsconfig-reference/copy/id/options/allowJs.md new file mode 100644 index 000000000000..79d97b32398d --- /dev/null +++ b/packages/tsconfig-reference/copy/id/options/allowJs.md @@ -0,0 +1,39 @@ +--- +display: "Allow JS" +oneline: "Izinkan TS menyertakan berkas .JS di impor" +--- + +Izinkan berkas JavaScript diimpor ke dalam proyek Anda, bukan hanya berkas `.ts` dan`.tsx`. Contoh, berkas JS ini: + +```js twoslash +// @filename: card.js +export const defaultCardDeck = "Heart"; +``` + +Ketika diimpor ke berkas TypeScript akan menimbulkan galat seperti berikut: + +```ts twoslash +// @errors: 2307 +// @filename: card.js +module.exports.defaultCardDeck = "Heart"; +// ---cut--- +// @filename: index.ts +import { defaultCardDeck } from "./card"; + +console.log(defaultCardDeck); +``` + +Impor berkas akan baik-baik saja saat `allowJs` diaktifkan: + +```ts twoslash +// @filename: card.js +module.exports.defaultCardDeck = "Heart"; +// ---cut--- +// @allowJs +// @filename: index.ts +import { defaultCardDeck } from "./card"; + +console.log(defaultCardDeck); +``` + +Opsi ini dapat digunakan sebagai cara untuk menambahkan berkas TypeScript secara bertahap ke dalam proyek JS dengan mengizinkan berkas `.ts` dan`.tsx` untuk hidup berdampingan dengan berkas JavaScript yang ada. diff --git a/packages/tsconfig-reference/copy/id/options/allowSyntheticDefaultImports.md b/packages/tsconfig-reference/copy/id/options/allowSyntheticDefaultImports.md new file mode 100644 index 000000000000..b0a4e6f6cdfd --- /dev/null +++ b/packages/tsconfig-reference/copy/id/options/allowSyntheticDefaultImports.md @@ -0,0 +1,56 @@ +--- +display: "Izinkan Setelan Standar Impor Sintetis" +oneline: "Izinkan 'impor x dari y' jika modul tidak memiliki setelan standar ekspor" +--- + +Jika disetel ke true `allowSyntheticDefaultImports` memungkinkan Anda untuk menulis impor seperti: + +```ts +import React from "react"; +``` + +daripada: + +```ts +import * as React from "react"; +``` + +Jika modul **tidak** secara eksplisit menentukan ekspor default. + +Misalnya, tanpa`allowSyntheticDefaultImports` disetel ke _true_: + +```ts twoslash +// @errors: 1259 +// @checkJs +// @allowJs +// @esModuleInterop: false +// @filename: utilFunctions.js +// @noImplicitAny: false +const getStringLength = (str) => str.length; + +module.exports = { + getStringLength, +}; + +// @filename: index.ts +import utils from "./utilFunctions"; + +const count = utils.getStringLength("Check JS"); +``` + +Kode ini menimbulkan galat karena tidak ada objek `default` yang dapat Anda impor. Meski rasanya seperti itu seharusnya. +Untuk kenyamanan, _transpiler_ seperti Babel akan secara otomatis membuat setelan standar jika tidak dibuat. Membuat modul terlihat lebih seperti: + +```js +// @filename: utilFunctions.js +const getStringLength = (str) => str.length; +const allFunctions = { + getStringLength, +}; + +module.exports = allFunctions; +module.exports.default = allFunctions; +``` + +Opsi ini tidak memengaruhi JavaScript yang dihasilkan oleh TypeScript, ini hanya untuk _type checking_. +Opsi ini membuat perilaku TypeScript sejalan dengan Babel, di mana kode ekstra akan ditambahkan kedalam setelan standar ekspor untuk membuat sebuah modul lebih ergonomis.