CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl-labs/typescript-project-structure

TypeScript project structure, strict tsconfig, module resolution, path aliases, shared types, and monorepo patterns

90

1.09x
Quality

84%

Does it follow best practices?

Impact

100%

1.09x

Average score across 5 eval scenarios

SecuritybySnyk

Passed

No known issues

Overview
Quality
Evals
Security
Files

Evaluation results

100%

CLI Tool — TypeScript Project from Scratch

Criteria
Without context
With context

strict: true

100%

100%

noUncheckedIndexedAccess

100%

100%

NodeNext module resolution

100%

100%

type: module in package.json

100%

100%

Declaration files enabled

100%

100%

Source in src/ directory

100%

100%

Test tsconfig extends base

100%

100%

Path alias configured

100%

100%

Type-only imports used

100%

100%

Proper .gitignore

100%

100%

Essential scripts present

100%

100%

Types in dedicated directory

100%

100%

Bin entry in package.json

100%

100%

100%

20%

Express API — TypeScript Project Setup

Criteria
Without context
With context

strict: true in tsconfig

100%

100%

noUncheckedIndexedAccess enabled

0%

100%

Correct module resolution for Node.js

0%

100%

Path alias configured

100%

100%

Source code in src/ directory

100%

100%

dist/ and node_modules/ in .gitignore

100%

100%

Essential package.json scripts

100%

100%

Type-only imports used

100%

100%

Types defined in dedicated types directory

100%

100%

ESLint with typescript-eslint configured

100%

100%

package.json type: module

100%

100%

100%

5%

Full-Stack React + Express — Shared Types Setup

Criteria
Without context
With context

Shared types directory

100%

100%

Separate tsconfig for server

100%

100%

Frontend uses bundler resolution

100%

100%

Server uses NodeNext resolution

100%

100%

Both tsconfigs have strict: true

100%

100%

Both tsconfigs include shared

100%

100%

Union types not enum

100%

100%

Concurrent dev scripts

100%

100%

Typecheck validates both

100%

100%

Path alias for shared

100%

100%

API types in shared

100%

100%

noUncheckedIndexedAccess

0%

100%

100%

8%

Fix Loose TypeScript Configuration

Criteria
Without context
With context

Strict mode enabled

100%

100%

noUncheckedIndexedAccess added

0%

100%

Module resolution modernized

100%

100%

Path alias added

100%

100%

src/ directory recommended

100%

100%

.gitignore created

100%

100%

Essential scripts added

100%

100%

type: module added

100%

100%

ESLint configured

100%

100%

Plan addresses type duplication

100%

100%

Plan addresses deep imports

100%

100%

tsx replaces ts-node

100%

100%

Target updated

100%

100%

100%

8%

Monorepo — TypeScript Project References with Shared Types

Criteria
Without context
With context

Workspace configuration

100%

100%

Root tsconfig with references

100%

100%

Shared package is composite

100%

100%

Shared package has declaration: true

100%

100%

Server references shared

100%

100%

Client references shared

100%

100%

All tsconfigs have strict: true

80%

100%

Shared types defined once

100%

100%

Union types not enum

100%

100%

Package dependencies correct

100%

100%

Server uses NodeNext

0%

100%

Client uses bundler resolution

100%

100%

Evaluated
Agent
Claude Code
Model
Claude Sonnet 4.6

Table of Contents