未验证 提交 4902a1ca 编写于 作者: R Ry Dahl 提交者: GitHub

Turn on TS strict mode for deno_typescript (#3330)

上级 8b90b8e8
......@@ -143,9 +143,10 @@ export class Body implements domTypes.Body {
this._stream = this._bodySource;
}
if (typeof this._bodySource === "string") {
const bodySource = this._bodySource;
this._stream = new ReadableStream({
start(controller: ReadableStreamController): void {
controller.enqueue(this._bodySource);
controller.enqueue(bodySource);
controller.close();
}
});
......
......@@ -285,7 +285,7 @@ async function processImports(
referrer = ""
): Promise<SourceFileJson[]> {
if (!specifiers.length) {
return;
return [];
}
const sources = specifiers.map(([, moduleSpecifier]) => moduleSpecifier);
const sourceFiles = await fetchSourceFiles(sources, referrer);
......@@ -385,6 +385,8 @@ class Host implements ts.CompilerHost {
private readonly _options: ts.CompilerOptions = {
allowJs: true,
allowNonTsExtensions: true,
// TODO(#3324) Enable strict mode for user code.
// strict: true,
checkJs: false,
esModuleInterop: true,
module: ts.ModuleKind.ESNext,
......
......@@ -2858,4 +2858,10 @@ declare namespace WebAssembly {
}
}
/* eslint-enable @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any */
// Catch-all for JSX elements.
// See https://www.typescriptlang.org/docs/handbook/jsx.html#intrinsic-elements
declare namespace JSX {
interface IntrinsicElements {
[elemName: string]: any;
}
}
......@@ -95,7 +95,8 @@ export function start(preserveDenoNamespace = true, source?: string): Start {
for (const [name, opId] of Object.entries(ops)) {
const opName = `OP_${name.toUpperCase()}`;
// Assign op ids to actual variables
dispatch[opName] = opId;
// TODO(ry) This type casting is gross and should be fixed.
((dispatch as unknown) as { [key: string]: number })[opName] = opId;
}
// First we send an empty `Start` message to let the privileged side know we
// are ready. The response should be a `StartRes` message containing the CLI
......
......@@ -259,7 +259,7 @@ export function isReadableStreamLocked<OutputType>(
export function readableStreamGetNumReadIntoRequests<OutputType>(
stream: SDReadableStream<OutputType>
): number | undefined {
): number {
// TODO remove the "as unknown" cast
// This is in to workaround a compiler error
// error TS2352: Conversion of type 'SDReadableStreamReader<OutputType>' to type 'SDReadableStreamBYOBReader' may be a mistake because neither type sufficiently overlaps with the other. If this was intentional, convert the expression to 'unknown' first.
......
......@@ -156,7 +156,7 @@ export class URL {
"search"
];
const objectString = keys
.map((key: string) => `${key}: "${this[key] || ""}"`)
.map((key: string) => `${key}: "${this[key as keyof this] || ""}"`)
.join(", ");
return `URL { ${objectString} }`;
}
......
......@@ -21,7 +21,7 @@ interface EvalErrorInfo {
}
declare interface DenoCore {
print(s: string, isErr?: boolean);
print(s: string, isErr?: boolean): void;
dispatch(
opId: number,
control: Uint8Array,
......
......@@ -127,6 +127,7 @@ pub fn compile_bundle(
let config_json = serde_json::json!({
"compilerOptions": {
"strict": true,
"declaration": true,
"lib": ["esnext"],
"module": "amd",
......
import { notImplemented, intoCallbackAPIWithIntercept } from "./_utils.ts";
import {
notImplemented,
intoCallbackAPIWithIntercept,
MaybeEmpty
} from "./_utils.ts";
const { readFile: denoReadFile, readFileSync: denoReadFileSync } = Deno;
type ReadFileCallback = (err: Error | null, data: string | Uint8Array) => void;
type ReadFileCallback = (
err: MaybeEmpty<Error>,
data: MaybeEmpty<string | Uint8Array>
) => void;
interface ReadFileOptions {
encoding?: string | null;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册