Sveltejs SSR - 属性 'render' 在类型 'typeof SvelteComponentDev' 上不存在
Sveltejs SSR - Property 'render' does not exist on type 'typeof SvelteComponentDev'
我正在尝试在服务器端使用 typescript 和 rollup 渲染一个 svelte 组件。
// renderer.ts
import type { SvelteComponentDev } from 'svelte/internal';
import App from '../../../routes/index.svelte';
export default (): SvelteComponentDev => {
const { html } = App.render();
return html;
};
它returns出现以下错误
Plugin typescript: @rollup/plugin-typescript TS2339: Property 'render' does not exist on type 'typeof SvelteComponentDev'.
根据我的研究,我提出了以下解决方法,但我不太喜欢它。
你们有更好的方法在打字稿中使用 ssr svelte 组件吗?
谢谢
// renderer.ts
import type { SvelteComponentDev } from 'svelte/internal';
let App;
import('../../../routes/index.svelte').then(module => {
App = module.default;
});
export default (): SvelteComponentDev => {
const { html } = App.render();
return html;
};
类型定义是为 DOM API 而写的,而不是 SSR API,所以这只是类型错误的问题,您可以通过某种方式消除这种错误.可能最简单的是类型转换为 any
:
// renderer.ts
import type { SvelteComponentDev } from 'svelte/internal';
import App from '../../../routes/index.svelte';
export default (): SvelteComponentDev => {
const { html } = (App as any).render();
return html;
};
顺便说一句,你打错了,html
是string
,所以应该是
// renderer.ts
import type { SvelteComponentDev } from 'svelte/internal';
import App from '../../../routes/index.svelte';
export default (): string => {
const { html } = (App as any).render();
return html;
};
我正在尝试在服务器端使用 typescript 和 rollup 渲染一个 svelte 组件。
// renderer.ts
import type { SvelteComponentDev } from 'svelte/internal';
import App from '../../../routes/index.svelte';
export default (): SvelteComponentDev => {
const { html } = App.render();
return html;
};
它returns出现以下错误
Plugin typescript: @rollup/plugin-typescript TS2339: Property 'render' does not exist on type 'typeof SvelteComponentDev'.
根据我的研究,我提出了以下解决方法,但我不太喜欢它。 你们有更好的方法在打字稿中使用 ssr svelte 组件吗? 谢谢
// renderer.ts
import type { SvelteComponentDev } from 'svelte/internal';
let App;
import('../../../routes/index.svelte').then(module => {
App = module.default;
});
export default (): SvelteComponentDev => {
const { html } = App.render();
return html;
};
类型定义是为 DOM API 而写的,而不是 SSR API,所以这只是类型错误的问题,您可以通过某种方式消除这种错误.可能最简单的是类型转换为 any
:
// renderer.ts
import type { SvelteComponentDev } from 'svelte/internal';
import App from '../../../routes/index.svelte';
export default (): SvelteComponentDev => {
const { html } = (App as any).render();
return html;
};
顺便说一句,你打错了,html
是string
,所以应该是
// renderer.ts
import type { SvelteComponentDev } from 'svelte/internal';
import App from '../../../routes/index.svelte';
export default (): string => {
const { html } = (App as any).render();
return html;
};