microsoft / microsoft/TypeScript
Expose `resolvedModules` property of `SourceFile`
Ouverte
Personne n'a encore pris cette issue.
Awaiting More Feedback
Domain: API
Suggestion
- Langage dominant
- Go
- Étoiles
- 111k
- Forks
- 14.4k
- Merge moyen
- 1 j 19 h
- PR mergées (30 j)
- 117
Description
TypeScript Version: 3.6.4
Code
import * as ts from 'typescript'
function createCompilerHost(): ts.CompilerHost {
function fileExists(fileName: string): boolean {
return ts.sys.fileExists(fileName)
}
function readFile(fileName: string): string | undefined {
return ts.sys.readFile(fileName)
}
function getSourceFile(
fileName: string,
languageVersion: ts.ScriptTarget,
) {
const sourceText = ts.sys.readFile(fileName)
return sourceText !== undefined
? ts.createSourceFile(fileName, sourceText, languageVersion)
: undefined
}
function resolveModuleNames(moduleNames) {
return moduleNames.map(() => undefined)
}
return {
getSourceFile,
getDefaultLibFileName: () => 'lib.d.ts',
writeFile: (fileName, content) => ts.sys.writeFile(fileName, content),
getCurrentDirectory: () => ts.sys.getCurrentDirectory(),
getDirectories: path => ts.sys.getDirectories(path),
getCanonicalFileName: fileName =>
ts.sys.useCaseSensitiveFileNames ? fileName : fileName.toLowerCase(),
getNewLine: () => ts.sys.newLine,
useCaseSensitiveFileNames: () => ts.sys.useCaseSensitiveFileNames,
fileExists,
readFile,
resolveModuleNames,
}
}
const options = {
module: ts.ModuleKind.ES2015,
target: ts.ScriptTarget.ES5,
}
const host = createCompilerHost()
const sourceFiles = ts.createProgram(['./test.ts'], options, host).getSourceFiles()
const matchsFile = sourceFiles
.filter(s => {
return s.resolvedModules.has('typescript')
})
Expected behavior:
Property 'resolvedModules' should exist on type 'SourceFile'
Actual behavior:

Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par localiser le type public SourceFile et le chemin createProgram().getSourceFiles() présenté dans la reproduction. Vérifiez comment resolvedModules est représenté en interne, puis vérifiez que la propriété est exposée sur SourceFile et que l’exemple TypeScript fourni peut y accéder.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- typescript
- Domaine
- compilers
- Type d'issue
- Fonctionnalité
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100