This extension contains code snippets for NextJS with Typescript. It is a fork of https://github.com/swyxio/swyx-react-typescript-snippets which is another fork of https://github.com/infeng/vscode-react-typescript made by cjbt.
It contains no class component APIs, assumes you use synthetic default imports, and has hooks.
Additionally it prefers function declarations over arrow function expressions and moves away from React.FC for prop scaffolding
It does a bit more based on the principle that it is easier to delete than to type, and so that we have just 3 easy to remember snippets: rfc
, rafc
, rhc
.
In order to install an extension you need to launch the Command Pallete (Ctrl + Shift + P or Cmd + Shift + P) and type Extensions. There you have either the option to show the already installed snippets or install new ones.
Launch VS Code Quick Open (Ctrl + P or Cmd + P), paste the following command, and press enter.
ext install cjbt-nextjs-typescript-snippets
Alternatively you can open the extensions panel and search for 'cjbt-nextjs-typescript-snippets'.
- TypeScript (.ts)
- TypeScript React (.tsx)
Below is a list of all available snippets and the triggers of each one. The ⇥ means the TAB
key.
Trigger | Content |
---|---|
rfc→ |
create a react function component (no hooks) |
rafc→ |
create a react async function component (no hooks) |
rhc→ |
create a react hooks component |
{
"React Function Component": {
"prefix": "rfc",
"body": [
"type $1Props = { $2: $3 }",
"export default function $1({ $2 }: $1Props) {",
" return (",
" $0",
" )",
"};"
],
"description": "Create a React Function Component"
},
"React Async Function Component": {
"prefix": "rafc",
"body": [
"type $1Props = { $2: $3 }",
"export default async function $1({ $2 }: $1Props) {",
" return (",
" $0",
" )",
"};"
],
"description": "Create a React Async Function Component"
},
"React Hooks Component": {
"prefix": "rhc",
"body": [
"type $1Props = { $2: $3 }",
"export default function $1({ $2 }: $1Props) {",
" const [${4}, set${4/(.*)/${4:/capitalize}/}] = React.useState($5);",
" React.useEffect(() => {}, [])",
" return (",
" ${0}",
" )",
"};",
""
],
"description": "Create a React Hooks Component."
}
}
vsce package
MIT