Это то, что я делаю в своем index.js
, чтобы не доставлять полифилы всем своим пользователям.
index. js
const renderApp = () => {
ReactDOM.render(
<App
firebase={firebase}
/>
,document.getElementById("root") as HTMLElement
);
};
/* ############################ */
/* #### CHECK FOR POLYFILL #### */
/* ############################ */
if (
'fetch' in window &&
'Intl' in window &&
'URL' in window &&
'Map' in window &&
'forEach' in NodeList.prototype &&
'startsWith' in String.prototype &&
'endsWith' in String.prototype &&
'includes' in String.prototype &&
'includes' in Array.prototype &&
'assign' in Object &&
'entries' in Object &&
'keys' in Object
) {
renderApp();
} else {
import(
/* webpackChunkName: "core-js-stable" */
/* webpackMode: "lazy" */
'core-js/stable' // <---- DYNAMIC IMPORTED "core-js/stable"
).then(renderApp);
}
Но я Я получаю предупреждение "неявный любой тип" в динамическом c импорте для core-js/stable
пакета. А поскольку я обычно работаю с флагом --noImplicitAny
, мой проект так не компилируется.
The weird thing is that I have installed the @types/core-js package
введите описание изображения здесь
Почему Typescript не находит типы для пакета core- js?
ПРИМЕЧАНИЕ: Если я импортирую его с обычным import "core-js/stable"
I не получить это предупреждение / ошибку.
Кроме того, если я динамически c импортирую только core-js
без пути /stable
, я не получаю никаких предупреждений / ошибок.
Мол, это нормально:
import(
/* webpackChunkName: "core-js-stable" */
/* webpackMode: "lazy" */
'core-js'
).then(renderApp);
tsconfig. json
{
"compilerOptions": {
"allowJs": true,
"baseUrl": ".",
"esModuleInterop": true,
"jsx": "react",
"module": "CommonJS",
"sourceMap": true,
"strictNullChecks": true,
"target": "ES5",
"paths": {
"@src/*": ["./src/*"],
}
},
"include": [
"src/**/*"
]
}