JS declaration emit uses this for method returns (#54062)

This commit is contained in:
Nathan Shively-Sanders 2023-05-02 14:19:03 -07:00 committed by GitHub
parent bbb9f2ebcf
commit 632ad0b0de
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 3 additions and 3 deletions

View File

@ -9123,7 +9123,7 @@ export function createTypeChecker(host: TypeCheckerHost): TypeChecker {
context.enclosingDeclaration = originalDecl || oldEnclosing;
const localParams = getLocalTypeParametersOfClassOrInterfaceOrTypeAlias(symbol);
const typeParamDecls = map(localParams, p => typeParameterToDeclaration(p, context));
const classType = getDeclaredTypeOfClassOrInterface(symbol);
const classType = getTypeWithThisArgument(getDeclaredTypeOfClassOrInterface(symbol)) as InterfaceType;
const baseTypes = getBaseTypes(classType);
const originalImplements = originalDecl && getEffectiveImplementsTypeNodes(originalDecl);
const implementsExpressions = originalImplements && sanitizeJSDocImplements(originalImplements)

View File

@ -102,5 +102,5 @@ declare class Example<T> {
getTypeName(this: Example<number>): 'number';
getTypeName(this: Example<string>): 'string';
transform<U>(fn: (y: T) => U): U;
transform<U_1>(): T;
transform<U>(): T;
}

View File

@ -28,7 +28,7 @@ export class Element {
* @returns {String}
*/
get textContent(): string;
cloneNode(): Element;
cloneNode(): this;
}
export class HTMLElement extends Element {
}