Skip to main content
Home Theme VS Code Noir VS Code Theme 🕵🏻 Noir is like a mysterious night in an old film noir, with its dark, monochromatic tones setting the stage for thrilling code adventures. It's the perfect theme to turn your coding sessions into suspenseful detective stories!
VS Code preview Full workbench mockup using this variant's colors and tokenColors.
colors Workbench UI color keys from the theme JSON colors map.
activityBar.background #2c2c2c activityBar.foreground #ffffff activityBar.inactiveForeground #ffffff66 activityBarBadge.background #000000 activityBarBadge.foreground #ffffff badge.background #c4c4c4 tokenColors TextMate scopes and font styles (syntax highlighting rules).
scope foreground fontStyle punctuation.definition.delayed.unison,punctuation.definition.list.begin.unison,punctuation.definition.list.end.unison,punctuation.definition.ability.begin.unison,punctuation.definition.ability.end.unison,punctuation.operator.assignment.as.unison,punctuation.separator.pipe.unison,punctuation.separator.delimiter.unison,punctuation.definition.hash.unison #666666 — variable.other.generic-type.haskell #686868 — storage.type.haskell #686868 — support.variable.magic.python
Shiki preview TypeScript sample highlighted with this variant's colors and tokenColors.
Noir VS Code Theme — Noir Light Noir VS Code Theme | Coding Theme
badge.foreground
#333333
breadcrumb.activeSelectionForeground #4e4e4e
breadcrumb.background #ffffff
breadcrumb.focusForeground #4e4e4e
breadcrumb.foreground #616161cc
button.background #969696
button.foreground #ffffff
button.hoverBackground #9f9f9f
button.secondaryBackground #757575
button.secondaryForeground #ffffff
button.secondaryHoverBackground #5e5e5e
checkbox.background #ffffff
checkbox.border #00000000
checkbox.foreground #616161
debugExceptionWidget.background #f3f3f3
debugExceptionWidget.border #d5d5d5
debugToolBar.background #f3f3f3
debugToolBar.border #d5d5d5
diffEditor.border #d7d7d7
diffEditor.insertedTextBackground #9bb95533
diffEditor.removedTextBackground #ff000033
dropdown.background #ffffff
dropdown.border #00000000
dropdown.foreground #616161
editor.background #ffffff
editor.findMatchBackground #adadad
editor.findMatchBorder #a1a1a1
editor.findMatchHighlightBackground #b8b8b855
editor.findMatchHighlightBorder #ffffff00
editor.findRangeHighlightBackground #b4b4b44d
editor.findRangeHighlightBorder #ffffff00
editor.foldBackground #d5d5d54d
editor.foreground #000000
editor.hoverHighlightBackground #add6ff26
editor.inactiveSelectionBackground #e5ebf1
editor.lineHighlightBackground #ffffff0A
editor.lineHighlightBorder #eeeeee
editor.rangeHighlightBackground #ffffff33
editor.rangeHighlightBorder #ffffff00
editor.selectionBackground #ececec
editor.selectionHighlightBackground #ffffff80
editor.selectionHighlightBorder #757575
editor.wordHighlightBackground #57575740
editor.wordHighlightStrongBackground #a9a9a940
editorBracketMatch.background #0064001a
editorBracketMatch.border #b9b9b9
editorCodeLens.foreground #999999
editorCursor.background #ffffff
editorCursor.foreground #000000
editorError.background #B73A3400
editorError.border #ffffff00
editorError.foreground #ff1600
editorGroup.border #e7e7e7
editorGroup.emptyBackground #ffffff
editorGroupHeader.tabsBackground #f3f3f3
editorGutter.addedBackground #81b88b
editorGutter.background #ffffff
editorGutter.commentRangeForeground #424242
editorGutter.deletedBackground #ca4b51
editorGutter.foldingControlForeground #424242
editorGutter.modifiedBackground #66afe0
editorHoverWidget.background #f3f3f3
editorHoverWidget.border #c8c8c8
editorHoverWidget.foreground #616161
editorIndentGuide.activeBackground #939393
editorIndentGuide.background #d3d3d3
editorInfo.background #4490BF00
editorInfo.border #4490BF00
editorInfo.foreground #75beff
editorLineNumber.activeForeground #c9c9c9
editorLineNumber.foreground #3d3d3d
editorLink.activeForeground #000000
editorMarkerNavigation.background #ffffff
editorMarkerNavigationError.background #e51400
editorMarkerNavigationInfo.background #75beff
editorMarkerNavigationWarning.background #e9a700
editorOverviewRuler.background #21212100
editorOverviewRuler.border #7f7f7f4d
editorRuler.foreground #d3d3d3
editorSuggestWidget.background #f3f3f3
editorSuggestWidget.border #c8c8c8
editorSuggestWidget.foreground #737373
editorSuggestWidget.highlightForeground #000000
editorSuggestWidget.selectedBackground #e2e2e2
editorWarning.background #A9904000
editorWarning.border #ffffff00
editorWarning.foreground #ffd15d
editorWhitespace.foreground #33333333
editorWidget.background #f3f3f3
editorWidget.foreground #616161
editorWidget.resizeBorder #c7c7c7
focusBorder #000000
foreground #565656
gitDecoration.addedResourceForeground #8bc01a
gitDecoration.conflictingResourceForeground #9191ee
gitDecoration.deletedResourceForeground #db2222
gitDecoration.ignoredResourceForeground #b6b6b6
gitDecoration.modifiedResourceForeground #7ec3ff
gitDecoration.stageDeletedResourceForeground #e00000
gitDecoration.stageModifiedResourceForeground #b195ff
gitDecoration.submoduleResourceForeground #7dbaff
gitDecoration.untrackedResourceForeground #18d318
icon.foreground #565656
input.background #ffffff
input.border #00000000
input.foreground #616161
input.placeholderForeground #767676
inputOption.activeBackground #75757533
inputOption.activeBorder #007acc00
inputOption.activeForeground #000000
list.activeSelectionBackground #bebebe80
list.activeSelectionForeground #0f0f0f
list.dropBackground #cfcfcf
list.errorForeground #ff4545
list.focusBackground #d7d7d7
list.focusForeground #616161
list.highlightForeground #000000
list.hoverBackground #e8e8e8
list.hoverForeground #616161
list.inactiveSelectionBackground #dbdbdb
list.inactiveSelectionForeground #616161
list.warningForeground #ffd95d
listFilterWidget.background #d5d5d5
listFilterWidget.noMatchesOutline #b8b8b8
listFilterWidget.outline #00000000
menu.background #ffffff
menu.border #00000085
menu.foreground #616161
menu.selectionBackground #c4c4c4
menu.selectionBorder #00000000
menu.selectionForeground #ffffff
menu.separatorBackground #888888
menubar.selectionBackground #0000001a
menubar.selectionForeground #333333
merge.commonContentBackground #E5E5E5
merge.commonHeaderBackground #BFBFBF
merge.currentContentBackground #DBF4EF
merge.currentHeaderBackground #A4E3D6
merge.incomingContentBackground #DBECFF
merge.incomingHeaderBackground #A6CFFF
minimap.background #ffffff
minimap.errorHighlight #ff1600
minimap.findMatchHighlight #adadad
minimap.selectionHighlight #ececec
minimap.warningHighlight #ffd15d
minimapGutter.addedBackground #81b88b
minimapGutter.deletedBackground #ca4b51
minimapGutter.modifiedBackground #66afe0
notificationCenter.border #d5d5d5
notificationCenterHeader.background #e7e7e7
notificationCenterHeader.foreground #616161
notifications.background #f3f3f3
notifications.border #e7e7e7
notifications.foreground #616161
notificationsErrorIcon.foreground #e51400
notificationsInfoIcon.foreground #75beff
notificationsWarningIcon.foreground #e9a700
notificationToast.border #d5d5d5
panel.background #ffffff
panel.border #80808059
panelSection.border #80808059
panelTitle.activeBorder #424242
panelTitle.activeForeground #424242
panelTitle.inactiveForeground #424242bf
peekView.border #000000
peekViewEditor.background #f5f5f5
peekViewEditor.matchHighlightBackground #ffffffde
peekViewEditor.matchHighlightBorder #c0c0c0
peekViewEditorGutter.background #f0f0f0
peekViewResult.background #f3f3f3
peekViewResult.fileForeground #1e1e1e
peekViewResult.lineForeground #646465
peekViewResult.matchHighlightBackground #9090904d
peekViewResult.selectionBackground #adadad33
peekViewResult.selectionForeground #6c6c6c
peekViewTitle.background #ffffff
peekViewTitleDescription.foreground #616161e6
peekViewTitleLabel.foreground #333333
pickerGroup.border #cccedb
pickerGroup.foreground #adadad
progressBar.background #000000
scrollbar.shadow #dddddd
scrollbarSlider.activeBackground #00000099
scrollbarSlider.background #64646466
scrollbarSlider.hoverBackground #646464b3
selection.background #eeeeee
settings.focusedRowBackground #ffffff07
settings.headerForeground #565656
sideBar.background #ececec
sideBar.dropBackground #cfcfcf
sideBar.foreground #545454
sideBarSectionHeader.background #00000000
sideBarSectionHeader.border #61616130
sideBarSectionHeader.foreground #616161
sideBarTitle.foreground #6f6f6f
statusBar.background #515151
statusBar.debuggingBackground #cc6633
statusBar.debuggingForeground #ffffff
statusBar.foreground #ffffff
statusBar.noFolderBackground #68217a
statusBar.noFolderForeground #ffffff
statusBarItem.activeBackground #FFFFFF25
statusBarItem.hoverBackground #ffffff1f
statusBarItem.remoteBackground #000000
statusBarItem.remoteForeground #ffffff
tab.activeBackground #ffffff
tab.activeBorder #00000000
tab.activeBorderTop #00000000
tab.activeForeground #333333
tab.border #f3f3f3
tab.inactiveBackground #ececec
tab.inactiveForeground #333333b3
terminal.ansiBlack #000000
terminal.ansiBlue #0451a5
terminal.ansiBrightBlack #666666
terminal.ansiBrightBlue #0451a5
terminal.ansiBrightCyan #0598bc
terminal.ansiBrightGreen #14ce14
terminal.ansiBrightMagenta #bc05bc
terminal.ansiBrightRed #cd3131
terminal.ansiBrightWhite #a5a5a5
terminal.ansiBrightYellow #b5ba00
terminal.ansiCyan #0598bc
terminal.ansiGreen #00b600
terminal.ansiMagenta #bc05bc
terminal.ansiRed #cd3131
terminal.ansiWhite #555555
terminal.ansiYellow #949800
terminal.border #80808059
terminal.foreground #333333
terminal.selectionBackground #00000040
terminalCursor.background #a9a9a9
terminalCursor.foreground #ffffff
textLink.foreground #a3a3a3
titleBar.activeBackground #323232
titleBar.activeForeground #e0e0e0
titleBar.border #00000000
titleBar.inactiveBackground #dddddd99
titleBar.inactiveForeground #33333399
tree.indentGuidesStroke #adadad
walkThrough.embeddedEditorBackground #00000050
widget.shadow #00000029 #666666
punctuation.separator.period.python,punctuation.separator.element.python,punctuation.parenthesis.begin.python,punctuation.parenthesis.end.python #000000 —
variable.parameter.function.language.special.self.python #000000 —
storage.modifier.lifetime.rust #000000 —
support.function.std.rust #909090 —
entity.name.lifetime.rust #000000 —
variable.language.rust #666666 —
support.constant.edge #686868 —
constant.other.character-class.regexp #666666 —
keyword.operator.quantifier.regexp #686868 —
punctuation.definition.string.begin,punctuation.definition.string.end #9d9d9d —
variable.parameter.function #000000 —
comment markup.link #bababa —
markup.changed.diff #000000 —
meta.diff.header.from-file,meta.diff.header.to-file,punctuation.definition.from-file.diff,punctuation.definition.to-file.diff #909090 —
markup.inserted.diff #9d9d9d —
markup.deleted.diff #666666 —
meta.function.c,meta.function.cpp #666666 —
punctuation.section.block.begin.bracket.curly.cpp,punctuation.section.block.end.bracket.curly.cpp,punctuation.terminator.statement.c,punctuation.section.block.begin.bracket.curly.c,punctuation.section.block.end.bracket.curly.c,punctuation.section.parens.begin.bracket.round.c,punctuation.section.parens.end.bracket.round.c,punctuation.section.parameters.begin.bracket.round.c,punctuation.section.parameters.end.bracket.round.c #000000 —
punctuation.separator.key-value #000000 —
keyword.operator.expression.import #909090 —
support.constant.math #000000 —
support.constant.property.math #686868 —
variable.other.constant #000000 —
storage.type.annotation.java, storage.type.object.array.java #000000 —
punctuation.section.block.begin.java,punctuation.section.block.end.java,punctuation.definition.method-parameters.begin.java,punctuation.definition.method-parameters.end.java,meta.method.identifier.java,punctuation.section.method.begin.java,punctuation.section.method.end.java,punctuation.terminator.java,punctuation.section.class.begin.java,punctuation.section.class.end.java,punctuation.section.inner-class.begin.java,punctuation.section.inner-class.end.java,meta.method-call.java,punctuation.section.class.begin.bracket.curly.java,punctuation.section.class.end.bracket.curly.java,punctuation.section.method.begin.bracket.curly.java,punctuation.section.method.end.bracket.curly.java,punctuation.separator.period.java,punctuation.bracket.angle.java,punctuation.definition.annotation.java,meta.method.body.java #000000 —
storage.modifier.import.java,storage.type.java,storage.type.generic.java #000000 —
keyword.operator.instanceof.java #686868 —
meta.definition.variable.name.java #666666 —
keyword.operator.logical #000000 —
keyword.operator.bitwise #000000 —
keyword.operator.channel #000000 —
support.constant.property-value.scss,support.constant.property-value.css #686868 —
keyword.operator.css,keyword.operator.scss,keyword.operator.less #000000 —
support.constant.color.w3c-standard-color-name.css,support.constant.color.w3c-standard-color-name.scss #686868 —
punctuation.separator.list.comma.css #000000 —
support.constant.color.w3c-standard-color-name.css #686868 —
support.type.vendored.property-name.css #000000 —
support.module.node,support.type.object.module,support.module.node #000000 —
entity.name.type.module #000000 —
variable.other.readwrite,meta.object-literal.key,support.variable.property,support.variable.object.process,support.variable.object.node #666666 —
support.constant.json #686868 —
keyword.operator.expression.instanceof, keyword.operator.new, keyword.operator.ternary, keyword.operator.optional, keyword.operator.expression.keyof #686868 —
support.type.object.console #666666 —
support.variable.property.process #686868 —
entity.name.function,support.function.console #909090 —
keyword.operator.misc.rust #000000 —
keyword.operator.sigil.rust #686868 —
keyword.operator.delete #686868 —
support.type.object.dom #000000 —
support.variable.dom,support.variable.property.dom #666666 —
keyword.operator.arithmetic,keyword.operator.comparison,keyword.operator.decrement,keyword.operator.increment,keyword.operator.relational #000000 —
keyword.operator.assignment.c,keyword.operator.comparison.c,keyword.operator.c,keyword.operator.increment.c,keyword.operator.decrement.c,keyword.operator.bitwise.shift.c,keyword.operator.assignment.cpp,keyword.operator.comparison.cpp,keyword.operator.cpp,keyword.operator.increment.cpp,keyword.operator.decrement.cpp,keyword.operator.bitwise.shift.cpp #686868 —
punctuation.separator.delimiter #000000 —
punctuation.separator.c,punctuation.separator.cpp #686868 —
support.type.posix-reserved.c,support.type.posix-reserved.cpp #000000 —
keyword.operator.sizeof.c,keyword.operator.sizeof.cpp #686868 —
variable.parameter.function.language.python #686868 —
support.type.python #000000 —
keyword.operator.logical.python #686868 —
variable.parameter.function.python #686868 —
punctuation.definition.arguments.begin.python,punctuation.definition.arguments.end.python,punctuation.separator.arguments.python,punctuation.definition.list.begin.python,punctuation.definition.list.end.python #000000 —
meta.function-call.generic.python #909090 —
constant.character.format.placeholder.other.python #686868 —
keyword.operator.assignment.compound #686868 —
keyword.operator.assignment.compound.js,keyword.operator.assignment.compound.ts #000000 —
entity.name.namespace #000000 —
variable.language #000000 —
token.variable.parameter.java #000000 —
import.storage.java #000000 —
token.package.keyword #686868 —
entity.name.function, meta.require, support.function.any-method, variable.function #909090 —
entity.name.type.namespace #000000 —
support.class, entity.name.type.class #000000 —
entity.name.class.identifier.namespace.type #000000 —
entity.name.class, variable.other.class.js, variable.other.class.ts #000000 —
variable.other.class.php #666666 —
control.elements, keyword.operator.less #686868 —
keyword.other.special-method #909090 —
keyword.operator.expression.delete,keyword.operator.expression.in,keyword.operator.expression.of,keyword.operator.expression.instanceof,keyword.operator.new,keyword.operator.expression.typeof,keyword.operator.expression.void #686868 —
token.storage.type.java #000000 —
support.type.property-name #000000 —
support.constant.property-value #000000 —
support.constant.font-name #686868 —
entity.other.inherited-class #000000 —
constant.other.symbol #000000 —
punctuation.definition.constant #686868 —
entity.other.attribute-name #686868 —
entity.other.attribute-name.id #909090 normal
entity.other.attribute-name.class.css #686868 normal
markup.heading punctuation.definition.heading, entity.name.section #909090 —
keyword.other.unit #666666 —
markup.bold,todo.bold #686868 —
punctuation.definition.bold #000000 —
markup.italic, punctuation.definition.italic,todo.emphasis #686868 —
entity.name.section.markdown #666666 —
punctuation.definition.heading.markdown #666666 —
punctuation.definition.list.begin.markdown #666666 —
markup.heading.setext #000000 —
punctuation.definition.bold.markdown #686868 —
markup.inline.raw.markdown #9d9d9d —
markup.inline.raw.string.markdown #9d9d9d —
punctuation.definition.list.markdown #666666 —
punctuation.definition.string.begin.markdown, punctuation.definition.string.end.markdown, punctuation.definition.metadata.markdown #666666 —
beginning.punctuation.definition.list.markdown #666666 —
punctuation.definition.metadata.markdown #666666 —
markup.underline.link.markdown,markup.underline.link.image.markdown #686868 —
string.other.link.title.markdown,string.other.link.description.markdown #909090 —
constant.character.escape #000000 —
punctuation.section.embedded, variable.interpolation #666666 —
punctuation.section.embedded.begin,punctuation.section.embedded.end #686868 —
invalid.illegal.bad-ampersand.html #000000 —
invalid.deprecated #ffffff —
invalid.unimplemented #ffffff —
source.json meta.structure.dictionary.json > string.quoted.json #666666 —
source.json meta.structure.dictionary.json > string.quoted.json > punctuation.string #666666 —
source.json meta.structure.dictionary.json > value.json > string.quoted.json,source.json meta.structure.array.json > value.json > string.quoted.json,source.json meta.structure.dictionary.json > value.json > string.quoted.json > punctuation,source.json meta.structure.array.json > value.json > string.quoted.json > punctuation #9d9d9d —
source.json meta.structure.dictionary.json > constant.language.json,source.json meta.structure.array.json > constant.language.json #000000 —
support.type.property-name.json #666666 —
support.type.property-name.json punctuation #666666 —
text.html.laravel-blade source.php.embedded.line.html entity.name.tag.laravel-blade #686868 —
text.html.laravel-blade source.php.embedded.line.html support.constant.laravel-blade #686868 —
support.other.namespace.use.php,support.other.namespace.use-as.php,support.other.namespace.php,entity.other.alias.php,meta.interface.php #000000 —
keyword.operator.error-control.php #686868 —
keyword.operator.type.php #686868 —
punctuation.section.array.begin.php #000000 —
punctuation.section.array.end.php #000000 —
invalid.illegal.non-null-typehinted.php #f44747 —
storage.type.php,meta.other.type.phpdoc.php,keyword.other.type.php,keyword.other.array.phpdoc.php #000000 —
meta.function-call.php,meta.function-call.object.php,meta.function-call.static.php #909090 —
punctuation.definition.parameters.begin.bracket.round.php,punctuation.definition.parameters.end.bracket.round.php,punctuation.separator.delimiter.php,punctuation.section.scope.begin.php,punctuation.section.scope.end.php,punctuation.terminator.expression.php,punctuation.definition.arguments.begin.bracket.round.php,punctuation.definition.arguments.end.bracket.round.php,punctuation.definition.storage-type.begin.bracket.round.php,punctuation.definition.storage-type.end.bracket.round.php,punctuation.definition.array.begin.bracket.round.php,punctuation.definition.array.end.bracket.round.php,punctuation.definition.begin.bracket.round.php,punctuation.definition.end.bracket.round.php,punctuation.definition.begin.bracket.curly.php,punctuation.definition.end.bracket.curly.php,punctuation.definition.section.switch-block.end.bracket.curly.php,punctuation.definition.section.switch-block.start.bracket.curly.php,punctuation.definition.section.switch-block.begin.bracket.curly.php,punctuation.definition.section.switch-block.end.bracket.curly.php #000000 —
support.constant.core.rust #686868 —
support.constant.ext.php,support.constant.std.php,support.constant.core.php,support.constant.parser-token.php #686868 —
entity.name.goto-label.php,support.other.php #909090 —
keyword.operator.logical.php,keyword.operator.bitwise.php,keyword.operator.arithmetic.php #000000 —
keyword.operator.regexp.php #686868 —
keyword.operator.comparison.php #000000 —
keyword.operator.heredoc.php,keyword.operator.nowdoc.php #686868 —
meta.function.decorator.python #909090 —
support.token.decorator.python,meta.function.decorator.identifier.python #000000 —
function.parameter #000000 —
function.parameter.ruby, function.parameter.cs #000000 —
constant.language.symbol.ruby #000000 —
inline-color-decoration rgb-value #686868 —
support.type.primitive.ts,support.type.builtin.ts,support.type.primitive.tsx,support.type.builtin.tsx #000000 —
block.scope.end,block.scope.begin #000000 —
entity.name.variable.local.cs #666666 —
token.error-token #f44747 —
token.debug-token #686868 —
punctuation.definition.template-expression.begin, punctuation.definition.template-expression.end, punctuation.section.embedded #686868 —
meta.template.expression #000000 —
keyword.operator.module #686868 —
support.type.type.flowtype #909090 —
support.type.primitive #000000 —
meta.property.object #666666 —
variable.parameter.function.js #666666 —
keyword.other.template.begin #9d9d9d —
keyword.other.template.end #9d9d9d —
keyword.other.substitution.begin #9d9d9d —
keyword.other.substitution.end #9d9d9d —
keyword.operator.assignment #000000 —
keyword.operator.assignment.go #000000 —
keyword.operator.arithmetic.go, keyword.operator.address.go #686868 —
entity.name.package.go #000000 —
support.type.prelude.elm #000000 —
support.constant.elm #686868 —
punctuation.quasi.element #686868 —
constant.character.entity #666666 —
entity.other.attribute-name.pseudo-element, entity.other.attribute-name.pseudo-class #000000 —
entity.global.clojure #000000 —
meta.symbol.clojure #666666 —
constant.keyword.clojure #000000 —
meta.arguments.coffee, variable.parameter.function.coffee #666666 —
meta.scope.prerequisites.makefile #666666 —
storage.modifier.import.groovy #000000 —
meta.method.groovy #909090 —
meta.definition.variable.name.groovy #666666 —
meta.definition.class.inherited.classes.groovy #9d9d9d —
support.variable.semantic.hlsl #000000 —
support.type.texture.hlsl, support.type.sampler.hlsl, support.type.object.hlsl, support.type.object.rw.hlsl, support.type.fx.hlsl, support.type.object.hlsl #686868 —
text.variable, text.bracketed #666666 —
support.type.swift, support.type.vb.asp #000000 —
entity.name.function.xi #000000 —
entity.name.class.xi #000000 —
constant.character.character-class.regexp.xi #666666 —
constant.regexp.xi #686868 —
keyword.control.xi #000000 —
beginning.punctuation.definition.quote.markdown.xi #9d9d9d —
beginning.punctuation.definition.list.markdown.xi #bababa —
constant.character.xi #909090 —
constant.other.color.rgb-value.xi #ffffff —
punctuation.definition.tag.xi #bababa —
entity.name.label.cs, entity.name.scope-resolution.function.call, entity.name.scope-resolution.function.definition #000000 —
entity.name.label.cs, markup.heading.setext.1.markdown, markup.heading.setext.2.markdown #666666 —
meta.brace.square #000000 —
comment, punctuation.definition.comment #bababa italic
markup.quote.markdown #bababa —
punctuation.definition.block.sequence.item.yaml #000000 —
constant.language.symbol.elixir #000000 —
entity.other.attribute-name.js,entity.other.attribute-name.ts,entity.other.attribute-name.jsx,entity.other.attribute-name.tsx,variable.parameter,variable.language.super — italic
comment.line.double-slash,comment.block.documentation — italic
keyword.control.import.python,keyword.control.flow.python — italic
markup.italic.markdown — italic
export interface User {
id : string;
name : string;
role : "admin" | "member" ;
tags : string[];
}
/**
* Fetch user data by ID
* @param id
* @returns User object or null if ID is invalid
*/
export async function fetchUser ( id : string): Promise<User | null> {
if (! id ) {
return null ;
}
const response = await fetch ( `/api/users/ ${ id } ` , {
method : "GET" ,
headers : { Accept : "application/json" },
});
if (! response . ok ) {
throw new Error ( `HTTP ${ response . status } ` );
}
return ( await response . json ()) as User;
}
function greet ( user : User): string {
// Simple greeting function that uses the user's name
return `Hello, ${ user . name } !` ;
}
fetchUser.ts
index.ts
README.md
src
components
fetchUser.ts
src
components
fetchUser.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Problems1
Output
Debug Console
Terminal
Ports
~/my-project $ pnpm dev
▲ Next.js ready on http://localhost:3000
✓ compiled client and server successfully in 412ms
wait - compiling /theme/vscode...
main*
Button.tsx
fetchUser
31
export interface User {
id : string;
name : string;
role : "admin" | "member" ;
tags : string[];
}
/**
* Fetch user data by ID
* @param id
* @returns User object or null if ID is invalid
*/
export async function fetchUser ( id : string): Promise<User | null> {
if (! id ) {
return null ;
}
const response = await fetch ( `/api/users/ ${ id } ` , {
method : "GET" ,
headers : { Accept : "application/json" },
});
if (! response . ok ) {
throw new Error ( `HTTP ${ response . status } ` );
}
return ( await response . json ()) as User;
}
function greet ( user : User): string {
// Simple greeting function that uses the user's name
return `Hello, ${ user . name } !` ;
}